Training and trouble shooting for computer systems have been enhanced by the ability to observe them and optionally control them remotely. Software products such as Norton pcANYWHERE.RTM. (produced by Symantec Corporation) and Timbuktu.RTM. (produced by Farallon Computing, Inc. of Alameda, California) permit remote observation and control of information displayed on a first computer from a second computer. These remote control software products may permit the controlling computer (observer) to provide commands to the controlled computer (observed) as if the commands are being typed on the local keyboard or provided through some other input/output device locally connected to the controlled computer. The ability to remotely observe and control a first computer from a second computer is particularly useful for training or for troubleshooting the first computer from a remote location.
In order to be effective, the display of the observing computer should accurately reflect the display of the observed computer, especially if the observed computer uses a graphical user interface. The display of the observing computer may or may not accurately reflect the display of the observed computer, depending upon the methods used to mimic the display of the observed computer. This may be particularly true with respect to the typeface, style, size, etc. of characters or glyphs displayed by the observed computer.
Graphical user interfaces are typically associated with message or event driven operating systems. A text output message is issued, for example, when text is to be sent to an output device such as a computer display. The text output message typically identifies the fonts and the glyphs or characters within the font that are to be output to the display. In response to the text output message, some component of the operating system composes the text using the specified fonts and glyphs. The composed text is then displayed by the source computer.
One technique used to mimic the display of an observed computer is simply to forward a copy of the text output message to the observing computer. The observed computer becomes the "source" computer for the display-oriented messages. The observing computer becomes a "destination" computer for the display-oriented messages.
FIG. 1 illustrates an architectural data flow diagram for using display messages produced by a source computer to model the source computer display when the source and destination computers have a message-based operating system such as Microsoft.RTM. Windows.RTM. (produced by Microsoft Corporation, Redmond, Wash.).
The text output message is communicated from the source computer to the destination computer. Upon receipt, the text output message is acted upon by the operating system of the destination computer to compose and display the text. The text output message instructs the destination computer to display text at a given location using specified glyphs or characters from an identified font. Ideally, the text output message produces text on the destination computer display that is identical to the text produced on the source computer display.
One drawback to this technique is that the destination computer must have all the fonts and glyphs referred to in the text output message in order to ensure accurate reproduction of the text. Thus one disadvantage of this technique is that the source computer may have glyphs which are otherwise unavailable to the graphics level of the destination computer.
One solution to this disadvantage is to perform a "best match" on the destination computer. In other words, a "best match" is performed to match the glyph with a glyph already existing on the destination computer. This might be realized, for example, by substituting glyphs from the same or a similar-looking font. One disadvantage of this solution, however, is that typeface, stroke weight, or size of the best match glyph may be significantly different from the original glyph if all the fonts on the source computer are not similarly available to the destination computer. FIG. 2 illustrates the disparity in appearance resulting from a font substitution.
Another method of ensuring accurate reproduction of glyphs is to initially send font data structures such as font masks and spacing from the source computer to the destination computer so that the appropriate glyphs can be generated by the destination computer when required. Unfortunately the source and destination computers may use operating systems which do not support the same data structures or the same format of font data structures.
A method of sharing glyphs displayed by an source computer with a destination computer is needed to ensure accurate rendering of the display of the source computer by the display of the destination computer, especially if the source and destination computers use operating systems having a graphical user interface.